package com.sls.game.supply.deal;

import org.apache.log4j.Logger;

import com.google.gson.Gson;
import com.sls.core.http.HttpClient;
import com.sls.core.socket.Head;
import com.sls.core.util.ServerDateAndTime;
import com.sls.core.util.UtilMD5Encryption;
import com.sls.game.common.DeductionRefund;
import com.sls.game.dao.DownstreamUserDAO;
import com.sls.game.dao.GoodsInfoManageDAO;
import com.sls.game.dao.GoodsOrderDAO;
import com.sls.game.dao.GoodsOrderLogDAO;
import com.sls.game.dao.SpecialPriceSystemDAO;
import com.sls.game.dao.TencentGoodsInfoDAO;
import com.sls.game.dao.nutsnet.ChargeTypeInfoDAO;
import com.sls.game.parser.tencent.ParseTencentConfigFile;
import com.sls.game.pojo.DeductionRefundInfo;
import com.sls.game.pojo.GoodsOrderInfo;
import com.sls.game.pojo.SLSHttpInterfaceInfo;
import com.sls.game.pojo.TencentGoodsInfo;

/**
 * 
 * @Description： 腾讯交易处理
 * @author Wangxuegang
 * @Date：2013-5-15
 * 
 */
public class TencentTradeDeal {

	private static Logger log = Logger.getLogger(TencentTradeDeal.class);

	/**
	 * 
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param zhitongcheNo
	 * @param zhitongcheKey
	 * @return
	 */
	public static String dealTradeTencent(SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head,
			String orderTime, String paymentOrderNo, String merchantIP,
			String zhitongcheNo, String zhitongcheKey, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 返回给上层对象
		SLSHttpInterfaceInfo sLSHttpInterfaceInfo = new SLSHttpInterfaceInfo();
		int num = Integer.parseInt(info.getBuyNum()); // 充值数量
		if (num > 500) { // 超过单笔交易购买商品数量的上限
			sLSHttpInterfaceInfo = dealFailure(null, null, info, orderId,
					orderTime, paymentOrderNo, chargeTypeInfoDAO,
					downstreamUserDAO, head, goodsInfoManageDAO,
					specialPriceSystemDAO, goodsOrderDAO, goodsOrderLogDAO,
					zhitongcheNo, sLSHttpInterfaceInfo);
			sLSHttpInterfaceInfo.setFailedReason("充值失败--单次购买数量不能大于500个Q币");
		} else {
			TencentGoodsInfo tencentGoodsInfo = null;
			// 调用交易方法
			tencentGoodsInfo = tradeOfTencent(info, originalGoodsId, orderId,
					head, zhitongcheNo, zhitongcheKey, address,
					tencentGoodsInfoDAO);
			// 返回码
			int ret = -1;
			String retStr = null;
			// 返回消息描述
			String ret_msg = null;
			if (tencentGoodsInfo != null) {
				// 返回码
				ret = tencentGoodsInfo.getRet();
				ret_msg = tencentGoodsInfo.getRet_msg();
				retStr = ret + "";
				if (ret == 0) { // 成功
					String status = "1"; // 成功
					String supOrderNo = ""; // 上游订单号
					String now = ServerDateAndTime.getNowDateTimeOfFormat(); // 成功时间

					GoodsOrderInfo goodsOrderInfo = new GoodsOrderInfo();
					goodsOrderInfo.setStatus(status);
					goodsOrderInfo.setSupOrderId(supOrderNo);
					goodsOrderInfo.setSupOrderSuccessTime(now);
					goodsOrderInfo.setResult(retStr);
					// 根据交易返回的结果更新订单表
					updateGoodsOrder(orderId, head, goodsOrderInfo,
							goodsOrderDAO, zhitongcheNo);

					sLSHttpInterfaceInfo.setResMsg("SUCCESS");
					sLSHttpInterfaceInfo.setPtOrderNo(info.getPtOrderNo());
					sLSHttpInterfaceInfo.setStatus("ORDER_SUCCESS");
					sLSHttpInterfaceInfo.setSupOrderNo(orderId);
					String nowTime = ServerDateAndTime.getNowDateTimeOfFormat();
					sLSHttpInterfaceInfo.setSupOrderSuccessTime(nowTime);
				} else {
					sLSHttpInterfaceInfo = dealFailure(retStr, ret_msg, info,
							orderId, orderTime, paymentOrderNo,
							chargeTypeInfoDAO, downstreamUserDAO, head,
							goodsInfoManageDAO, specialPriceSystemDAO,
							goodsOrderDAO, goodsOrderLogDAO, zhitongcheNo,
							sLSHttpInterfaceInfo);
				}
			} else { // 存疑
				GoodsOrderInfo ord = new GoodsOrderInfo();
				ord.setStatus("3");
				// 数据更新
				try {
					goodsOrderDAO.update(ord);
				} catch (Exception e) {
					log.error("updateGoodsOrder处理[" + head.getRequestId()
							+ "]的请求出现异常！", e);
				}
				sLSHttpInterfaceInfo.setResMsg("SUCCESS");
				sLSHttpInterfaceInfo.setFailedCode("210");
				sLSHttpInterfaceInfo.setFailedReason("订单存疑");
				sLSHttpInterfaceInfo.setPtOrderNo(info.getPtOrderNo());
				sLSHttpInterfaceInfo.setStatus("ORDER_DUBIOUS");
				sLSHttpInterfaceInfo.setSupOrderNo(orderId);
			}
		}
		sLSHttpInterfaceInfo.setGameAccount(info.getGameAccount());
		sLSHttpInterfaceInfo.setUnitPrice(info.getUnitPrice());
		sLSHttpInterfaceInfo.setBuyNum(info.getBuyNum());
		String totalPrice = info.getTotalPrice();
		String chargeTypeName = info.getChargeTypeName();
		if (chargeTypeName != null && !("".equals(chargeTypeName))) {
			totalPrice = DeductionRefund.calculateTotalPrice(info,
					chargeTypeName, originalGoodsId, chargeTypeInfoDAO);
		}

		sLSHttpInterfaceInfo.setTotalPrice(totalPrice);
		String resultBody = null;
		resultBody = gson.toJson(sLSHttpInterfaceInfo);
		return resultBody;
	}

	/**
	 * 失败后处理
	 * 
	 * @param retStr
	 * @param info
	 * @param orderId
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param head
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param zhitongcheNo
	 * @param sLSHttpInterfaceInfo
	 * @return
	 */
	private static SLSHttpInterfaceInfo dealFailure(String retStr,
			String ret_msg, SLSHttpInterfaceInfo info, String orderId,
			String orderTime, String paymentOrderNo,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO, Head head,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			String zhitongcheNo, SLSHttpInterfaceInfo sLSHttpInterfaceInfo) {
		String status = "0"; // 失败
		GoodsOrderInfo goodsOrderInfo = new GoodsOrderInfo();
		goodsOrderInfo.setStatus(status);
		goodsOrderInfo.setResult(retStr);
		goodsOrderInfo.setStatusRemark(ret_msg);
		// 退款给下游
		DeductionRefundInfo dedInfo = null;
		String paymentStatus = "";
		// 退款
		dedInfo = DeductionRefund.invokeDeductRefund(info, orderId, "1",
				orderTime, paymentOrderNo, head, goodsOrderDAO);
		if (dedInfo != null) {
			paymentStatus = dedInfo.getPaymentStatus();
		}
		if ("1".equals(paymentStatus)) { // 成功
			goodsOrderInfo.setIsPay("3"); // 退款成功
			// 退款成功，通知下游用户
			DeductionRefund.noticeUserRefundMsg(orderId, dedInfo,
					goodsOrderDAO, downstreamUserDAO, goodsOrderLogDAO);
		} else if ("2".equals(paymentStatus)) {
			goodsOrderInfo.setIsPay("2"); // 退款失败
		}
		// 根据交易返回的结果更新订单表
		updateGoodsOrder(orderId, head, goodsOrderInfo, goodsOrderDAO,
				zhitongcheNo);
		sLSHttpInterfaceInfo.setResMsg("FAILED");
		sLSHttpInterfaceInfo.setFailedCode("208");
		sLSHttpInterfaceInfo.setFailedReason("充值失败");
		sLSHttpInterfaceInfo.setPtOrderNo(info.getPtOrderNo());
		sLSHttpInterfaceInfo.setStatus("ORDER_FAILED");
		sLSHttpInterfaceInfo.setSupOrderNo(orderId);

		return sLSHttpInterfaceInfo;
	}

	/**
	 * 腾讯交易请求
	 */
	private static TencentGoodsInfo tradeOfTencent(SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head,
			String zhitongcheNo, String zhitongcheKey, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO) {
		TencentGoodsInfo tencentGoodsInfo = null;
		String url = assembleParaUrlOfTencent(info, originalGoodsId, orderId,
				head, zhitongcheNo, zhitongcheKey, address, tencentGoodsInfoDAO);
		tencentGoodsInfo = sendHttpRequestOfTencent(url, head);
		return tencentGoodsInfo;
	}

	/**
	 * 拼装腾讯交易url
	 * 
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param mch_id
	 * @param enc_key
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @return
	 */
	private static String assembleParaUrlOfTencent(SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head, String mch_id,
			String enc_key, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO) {
		String notifyUrl = ""; // 回调地址
		// 前台交易日期
		String tran_date = ServerDateAndTime.getNowDate();
		// 手拉手订单号
		String tran_seq = orderId;
		// 用户账号（QQ号码）
		String in_acct = info.getGameAccount();
		// 充值数量
		String num = info.getBuyNum();
		TencentGoodsInfo tencentGoodsInfo = null;
		try {
			tencentGoodsInfo = tencentGoodsInfoDAO
					.queryGoodsInfoGoodsId(originalGoodsId);
		} catch (Exception e) {
			log.error("Service处理[" + head.getRequestId() + "]的请求出现异常！", e);
		}
		// 用户帐号类型
		String in_acct_type = "0";
		// 服务类型
		int sell_type = 0;
		// 服务子类型
		int sell_sub_type = 0;
		if (tencentGoodsInfo != null) {
			in_acct_type = tencentGoodsInfo.getIn_acct_type();
			sell_type = tencentGoodsInfo.getSell_type();
			sell_sub_type = tencentGoodsInfo.getSell_sub_type();
		}
		// 返回类型 1 在当前socket写返回结果 2 回掉指定url
		int ret_type = 1; // 此处应为1
		// 回调url，当ret_type=2时必填
		String ret_url = notifyUrl;
		// 订单时间 （从19700101 00:00:00开始的秒数）
		String time = ServerDateAndTime.getSecondsTime();
		// 签名字符串
		String sign = createSignString(info, originalGoodsId, orderId, head,
				time, tencentGoodsInfoDAO, mch_id, enc_key, tran_date);
		StringBuilder strBui = new StringBuilder();
		strBui.append(address);
		strBui.append("?");
		strBui.append("mch_id=");
		strBui.append(mch_id);
		strBui.append("&");
		strBui.append("tran_seq=");
		strBui.append(tran_seq);
		strBui.append("&");
		strBui.append("tran_date=");
		strBui.append(tran_date);
		strBui.append("&");
		strBui.append("in_acct=");
		strBui.append(in_acct);
		strBui.append("&");
		strBui.append("in_acct_type=");
		strBui.append(in_acct_type);
		strBui.append("&");
		strBui.append("sell_type=");
		strBui.append(sell_type);
		strBui.append("&");
		strBui.append("sell_sub_type=");
		strBui.append(sell_sub_type);
		strBui.append("&");
		strBui.append("num=");
		strBui.append(num);
		strBui.append("&");
		strBui.append("ret_type=");
		strBui.append(ret_type);
		strBui.append("&");
		if (ret_type == 2) {
			strBui.append("ret_url=");
			strBui.append(ret_url);
			strBui.append("&");
		} else {
			strBui.append("ret_url=");
			strBui.append("&");
		}
		strBui.append("time=");
		strBui.append(time);
		strBui.append("&");
		strBui.append("sign=");
		strBui.append(sign);
		String url = strBui.toString().trim();
		return url;
	}

	/**
	 * 生成腾讯签名字符串
	 * 
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param time
	 * @param tencentGoodsInfoDAO
	 * @param mch_id
	 *            直通车帐号
	 * @param enc_key
	 *            密钥
	 * @return
	 */
	private static String createSignString(SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head, String time,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, String mch_id,
			String enc_key, String tran_date) {
		// 手拉手订单号
		String tran_seq = orderId;
		// 用户账号（QQ号码）
		String in_acct = info.getGameAccount();
		// 充值数量
		String num = info.getBuyNum();

		TencentGoodsInfo tencentGoodsInfo = null;
		try {
			tencentGoodsInfo = tencentGoodsInfoDAO
					.queryGoodsInfoGoodsId(originalGoodsId);
		} catch (Exception e) {
			log.error("Service处理[" + head.getRequestId() + "]的请求出现异常！", e);
		}
		// 用户帐号类型
		String in_acct_type = "0";
		// 服务类型
		int sell_type = 0;
		// 服务子类型
		int sell_sub_type = 0;
		if (tencentGoodsInfo != null) {
			in_acct_type = tencentGoodsInfo.getIn_acct_type();
			sell_type = tencentGoodsInfo.getSell_type();
			sell_sub_type = tencentGoodsInfo.getSell_sub_type();
		}
		// 返回类型 1 在当前socket写返回结果 2 回掉指定url
		int ret_type = 1;
		// 回调url，当ret_type=2时必填
		String ret_url = "";
		StringBuilder strBui = new StringBuilder();
		strBui.append("mch_id=");
		strBui.append(mch_id);
		strBui.append("&");
		strBui.append("tran_seq=");
		strBui.append(tran_seq);
		strBui.append("&");
		strBui.append("tran_date=");
		strBui.append(tran_date);
		strBui.append("&");
		strBui.append("in_acct=");
		strBui.append(in_acct);
		strBui.append("&");
		strBui.append("in_acct_type=");
		strBui.append(in_acct_type);
		strBui.append("&");
		strBui.append("sell_type=");
		strBui.append(sell_type);
		strBui.append("&");
		strBui.append("sell_sub_type=");
		strBui.append(sell_sub_type);
		strBui.append("&");
		strBui.append("num=");
		strBui.append(num);
		strBui.append("&");
		strBui.append("ret_type=");
		strBui.append(ret_type);
		strBui.append("&");
		strBui.append("ret_url=");
		strBui.append(ret_url);
		strBui.append("&");
		strBui.append("time=");
		strBui.append(time);
		strBui.append("||");
		strBui.append(enc_key);
		String data = strBui.toString().trim();
		String sign = UtilMD5Encryption.createMD5Encryption(data);
		return sign;
	}

	/**
	 * 发送腾讯http交易请求
	 */
	private static TencentGoodsInfo sendHttpRequestOfTencent(String url,
			Head head) {
		TencentGoodsInfo tencentGoodsInfo = null;
		HttpClient httpClient = new HttpClient();
		try {
			// 供应商返回消息编码方式
			String supplyEncode = "GBK";
			log.info("请求ID：" + head.getRequestId() + "，发送到腾讯直充接口的请求url：" + url);
			String resultStr = httpClient.doGet(url, supplyEncode);
			log.info("请求ID：" + head.getRequestId() + "，腾讯直充接口的返回结果："
					+ resultStr);
			tencentGoodsInfo = ParseTencentConfigFile
					.parseTencentResponse(resultStr);
		} catch (Exception e) {
			log.error("请求ID：" + head.getRequestId() + "，腾讯直充交易请求异常！", e);
		}
		return tencentGoodsInfo;
	}

	/**
	 * 根据交易返回的结果更新订单表
	 * 
	 * @param orderId
	 * @param head
	 * @param info
	 */
	private static void updateGoodsOrder(String orderId, Head head,
			GoodsOrderInfo orderInfo, GoodsOrderDAO goodsOrderDAO,
			String zhitongcheNo) {
		orderInfo.setOrderId(orderId);
		orderInfo.setSynOrAsy("0"); // 同步通知标识
		// 数据更新
		try {
			goodsOrderDAO.update(orderInfo);
		} catch (Exception e) {
			log.error(
					"updateGoodsOrder处理[" + head.getRequestId() + "]的请求出现异常！",
					e);
		}
	}

	/**
	 * 
	 * @param zhitongcheNo
	 * @param zhitongcheKey
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	private static String callTencentDealTrade(String zhitongcheNo,
			String zhitongcheKey, SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head,
			String orderTime, String paymentOrderNo, String merchantIP,
			String address, TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		GoodsOrderInfo goodsOrderInfo = new GoodsOrderInfo();
		goodsOrderInfo.setRegisterAccount(zhitongcheNo);
		goodsOrderInfo.setOrderId(orderId);
		// 数据更新
		try {
			goodsOrderDAO.update(goodsOrderInfo);
		} catch (Exception e) {
			log.error("处理[" + head.getRequestId() + "]的请求出现异常！", e);
		}

		String resultBody = null;
		if (zhitongcheNo != null && !("".equals(zhitongcheNo))) {
			zhitongcheNo = zhitongcheNo.trim();
		}
		if (zhitongcheKey != null && !("".equals(zhitongcheKey))) {
			zhitongcheKey = zhitongcheKey.trim();
		}
		resultBody = dealTradeTencent(info, originalGoodsId, orderId, head,
				orderTime, paymentOrderNo, merchantIP, zhitongcheNo,
				zhitongcheKey, address, tencentGoodsInfoDAO, gson,
				goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
				downstreamUserDAO, goodsInfoManageDAO, specialPriceSystemDAO);

		return resultBody;
	}

	/**
	 * 调用浙江省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callZhejiangAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_zhejiang().trim();
			zhitongcheKey = serverInfo.getEnc_key_zhejiang().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 广东 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callGuangdongAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_guangdong().trim();
			zhitongcheKey = serverInfo.getEnc_key_guangdong().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 广西 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callGuangxiAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_guangxi().trim();
			zhitongcheKey = serverInfo.getEnc_key_guangxi().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 云南 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callYunnanAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_yunnan().trim();
			zhitongcheKey = serverInfo.getEnc_key_yunnan().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 山东 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callShandongAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_shandong().trim();
			zhitongcheKey = serverInfo.getEnc_key_shandong().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 江苏 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callJiangsuAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_jiangsu().trim();
			zhitongcheKey = serverInfo.getEnc_key_jiangsu().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 江西 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callJiangxiAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_jiangxi().trim();
			zhitongcheKey = serverInfo.getEnc_key_jiangxi().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 湖北 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callHubeiAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_hubei().trim();
			zhitongcheKey = serverInfo.getEnc_key_hubei().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 四川 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callSichuanAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_sichuan().trim();
			zhitongcheKey = serverInfo.getEnc_key_sichuan().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 河南 省对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callHenanAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_henan().trim();
			zhitongcheKey = serverInfo.getEnc_key_henan().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用上海 对应的账号
	 * 
	 * @param serverInfo
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callShanghaiAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_shanghai().trim();
			zhitongcheKey = serverInfo.getEnc_key_shanghai().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 湖南 省对应的账号
	 * 
	 * @return
	 */
	public static String callHunanAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_hunan().trim();
			zhitongcheKey = serverInfo.getEnc_key_hunan().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 安徽 省对应的账号
	 * 
	 * @return
	 */
	public static String callAnhuiAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_anhui().trim();
			zhitongcheKey = serverInfo.getEnc_key_anhui().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 调用 福建 省对应的账号
	 */
	public static String callFujianAccount(TencentGoodsInfo serverInfo,
			SLSHttpInterfaceInfo info, String originalGoodsId, String orderId,
			Head head, String orderTime, String paymentOrderNo,
			String merchantIP, String address,
			TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = null;
		// 腾讯直通车密钥
		String zhitongcheKey = null;
		String resultBody = null;
		if (serverInfo != null) {
			zhitongcheNo = serverInfo.getMch_id_fujian().trim();
			zhitongcheKey = serverInfo.getEnc_key_fujian().trim();
			resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey,
					info, originalGoodsId, orderId, head, orderTime,
					paymentOrderNo, merchantIP, address, tencentGoodsInfoDAO,
					gson, goodsOrderDAO, goodsOrderLogDAO, chargeTypeInfoDAO,
					downstreamUserDAO, goodsInfoManageDAO,
					specialPriceSystemDAO);
		}
		return resultBody;
	}

	/**
	 * 固定工号
	 * 
	 * @param tencentAccount
	 * @param tencentSecretkey
	 * @param info
	 * @param originalGoodsId
	 * @param orderId
	 * @param head
	 * @param orderTime
	 * @param paymentOrderNo
	 * @param merchantIP
	 * @param address
	 * @param tencentGoodsInfoDAO
	 * @param gson
	 * @param goodsOrderDAO
	 * @param goodsOrderLogDAO
	 * @param chargeTypeInfoDAO
	 * @param downstreamUserDAO
	 * @param goodsInfoManageDAO
	 * @param specialPriceSystemDAO
	 * @return
	 */
	public static String callFixedAccount(String tencentAccount,
			String tencentSecretkey, SLSHttpInterfaceInfo info,
			String originalGoodsId, String orderId, Head head,
			String orderTime, String paymentOrderNo, String merchantIP,
			String address, TencentGoodsInfoDAO tencentGoodsInfoDAO, Gson gson,
			GoodsOrderDAO goodsOrderDAO, GoodsOrderLogDAO goodsOrderLogDAO,
			ChargeTypeInfoDAO chargeTypeInfoDAO,
			DownstreamUserDAO downstreamUserDAO,
			GoodsInfoManageDAO goodsInfoManageDAO,
			SpecialPriceSystemDAO specialPriceSystemDAO) {
		// 腾讯直通车账号
		String zhitongcheNo = tencentAccount.trim();
		// 腾讯直通车密钥
		String zhitongcheKey = tencentSecretkey.trim();
		String resultBody = null;
		resultBody = callTencentDealTrade(zhitongcheNo, zhitongcheKey, info,
				originalGoodsId, orderId, head, orderTime, paymentOrderNo,
				merchantIP, address, tencentGoodsInfoDAO, gson, goodsOrderDAO,
				goodsOrderLogDAO, chargeTypeInfoDAO, downstreamUserDAO,
				goodsInfoManageDAO, specialPriceSystemDAO);

		return resultBody;
	}

}
